1. Technical Field
Present invention embodiments relate to compression and decompression, and more specifically, to using pre-expansion of a decompression dictionary and self-decompressing data elements to improve decompression performance.
2. Discussion of the Related Art
Modern software applications make extensive use of compression to reduce the size of data stored on disk or in memory, or transmitted across a network. Compression techniques may be lossless or lossful. Lossful techniques may be used when it is acceptable to lose some data relative to the original source data. For example, a photo presented by way of a low resolution system (e.g., a cell phone display) may not need all of the detail provided by the higher resolution source photo (e.g., a high resolution family portrait). The cell phone essentially displays the substance of the higher resolution family portrait, but with the reduced processing and storage requirements available by using the lower resolution image.
Lossless techniques for compressing data may be used when a loss of data would be detrimental (e.g., a loss of a bank account digit, a loss of social security number, or loss of data for mission critical systems such as emergency response systems). The use of compression and decompression techniques generally trade off CPU processing resources with disk space or data transmission resources on both the compression and the decompression processing end. In other words, increased compression efficiency typically requires more processing resources and less storage space, while decreased compression efficiency typically requires less processing resources and more storage or transmission resources. Traditional approaches for increasing efficiency have focused on the compression algorithm.